Method and system for receiving a software image from a customer for installation into a computer system

ABSTRACT

A method of manufacturing a computer system. The method includes receiving an order and a software image via a communications network, building the computer system according to the order, and installing the software image on the computer system.

BACKGROUND

[0001] The disclosures herein relate generally to computer systems andmore particularly to a method and system for receiving a software imagefrom a customer for installation into a computer system.

[0002] Customers of computer manufacturers often want software and otherdata on a computer system to be fully configured when they receive thesystem from the manufacturer. In particular, customers often want thesoftware and data on their computer systems to be customized to thecustomers preferred configuration. The process of configuring softwareand data of a computer system may be time consuming and requiresignificant work on the part of the customer, the manufacturer, or both.Significant resources may be spent to obtain the preferred configurationand to install it onto one or more computer systems built by themanufacturer.

[0003] It would be desirable for a computer manufacturer to be able toefficiently receive a software image from a customer. Accordingly, whatis needed is a method and system for receiving a software image from acustomer for installation into a computer system.

SUMMARY

[0004] One embodiment, accordingly, provides a method of manufacturing acomputer system. The method includes receiving an order and a softwareimage via a communications network, building the computer systemaccording to the order, and installing the software image on thecomputer system.

[0005] A principal advantage of this embodiment is that it allows acomputer manufacturer to install a software image onto a computersystem. A customer may configure software and data to a desired state tocreate a desired software image. The computer manufacturer obtains thesoftware image from the customer and installs the image onto a computersystem ordered by the customer.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006]FIG. 1 is a diagram illustrating an embodiment of a first portionof a system for configuring a software image for installation into acomputer system.

[0007]FIG. 2 is a first diagram illustrating an embodiment of a secondportion of a system for configuring a software image for installationinto a computer system.

[0008]FIG. 3 is a flow chart illustrating an embodiment of a method forconfiguring a software image for installation into a computer system.

[0009]FIG. 4a is a first diagram illustrating an embodiment of a systemfor receiving a software image for installation into a computer system.

[0010]FIG. 4b is a second diagram illustrating an embodiment of a systemfor receiving a software image for installation into a computer system.

[0011]FIG. 4c is a third diagram illustrating an embodiment of a systemfor receiving a software image for installation into a computer system.

[0012]FIG. 4d is a fourth diagram illustrating an embodiment of a systemfor receiving a software image for installation into a computer system.

[0013]FIG. 5 is a flow chart illustrating an embodiment of a method forreceiving a software image for installation into a computer system.

[0014]FIG. 6 is diagram illustrating an embodiment of a system forproviding a copy of a software image.

[0015]FIG. 7 is a diagram illustrating an embodiment of a system forproviding data for installation onto a computer system.

DETAILED DESCRIPTION

[0016]FIG. 1 is a diagram illustrating an embodiment of a first portionof a system for creating a software image for installation into acomputer system. In FIG. 1, computer system 100 is configured tocommunicate with a computer system 110 and a computer system 120 using acommunications network 130. Communications network 130 may be anysuitable communications medium such as the Internet, an intranet, apoint-to-point connection, or a wireless connection. Customer 10operates computer system 100 as indicated by arrow 12.

[0017] As shown in box 100 a, computer system 100 includescommunications software 102. Communications software 102 allows customer10 to communicate with computer system 110 and computer system 120.Communications software 102 may be a remote control tool such asMicrosoft Terminal Services, LapLink, or PCAnywhere and may include asecure connection such as Virtual Private Networking. Communicationssoftware 102 may also be an internet browser such as Internet Exploreror Netscape Navigator. Computer system 100 may be any type of computersystem that includes processing and storage capabilities. Examples ofcomputer systems include desktop, laptop, server, portable, and handheldcomputer systems.

[0018] Computer systems 110 and 120 are configured to provide customer10 with the ability to configure a software image for installation onone or more computer systems ordered from a computer manufacturer.Computer systems 110 and 120 simulate the operation of a computer systemorder by customer 10. As described in additional detail below, computersystem 110 includes substantially identical components to the computersystem ordered by customer 10. In contrast, computer system 120 includesa virtual machine program 122 configured to cause computer system 120 tosimulate the operation of the computer system ordered by customer 10.Using computer system 100 and communications software 102, customer 10accesses computer systems 110 or 120 to configure a software image thatwill be installed on one or more computer systems ordered by thecustomer. The operation of computer systems 110 and 120 will now bedescribed separately.

[0019] In response to receiving an order from customer 10, a computermanufacturer may provide customer 10 with access to computer system 110.Computer system 110 is substantially identical to a computer systemordered by customer 10, i.e. computer system 110 includes the same orsimilar hardware and software components as the computer system orderedby customer 10.

[0020] As shown in a box 110 a, computer system 110 includes a processor112, a chipset 114, a plurality of devices 116 a, 116 b, and 116 c, anda memory 118. Memory 118 includes a software image 119. Image 119includes the software and data installed onto computer system 110.Processor 112, chipset 114, devices 116 a, 116 b, and 116 c, and memory118 are each components of computer system 110 and correspond to ahardware configuration selected by customer 10. Customer 10 may selecteach of the components individually or as part of a package orpreexisting configuration of components offered by a computermanufacturer.

[0021] Customer 10 may also select the software and data components ofsoftware image 119. These components may include an operating system,hardware drivers, applications, and other data offered by the computermanufacturer. As with the hardware components, customer 10 may selecteach of the software and data components individually or as part of apackage or preexisting configuration of components offered by themanufacturer.

[0022] The components shown in the embodiment of computer system 110 inFIG. 1 are shown by way of example. Other embodiments of computersystems may comprise other sets of components including components notshown in FIG. 1.

[0023] By providing customer 10 with access to computer system 110,customer 10 may configure the software and data on computer system 110in a way that allows the computer manufacturer to replicate a preferredconfiguration of customer 10 onto one or more computer systems orderedby customer 10. In response to receiving an order from customer 10, thecomputer manufacturer may either build computer system 110 in accordancewith the order or provide a previously built computer system 110 thatmeets the order. The process of building or providing computer system110 may include installing or configuring hardware and softwarecomponents according to the order.

[0024] After computer system 110 is ready, the computer manufacturerprovides customer 10 with the ability to connect to computer system 110from a remote location. In FIG. 1, customer 10 connects to computersystem 110 using computer system 100 and communications network 130. Thecomputer manufacturer may have customer 10 log in or select an indicatoron a website to allow customer 10 to connect to computer system 110.After customer 10 is connected, customer 10 is provided with the abilityto operate computer system 110 remotely. Customer 10 may configurecomputer system 110 in any manner desired. For example, customer 10 maychange a configuration of an operating system, one or more applications,a file structure, a file system, a boot sequence, or one or morehardware drivers. Customer 10 may also create or store data on computersystem 110 using an application on computer system 110 or by uploadingthe data from computer system 100.

[0025] Each change that customer 10 makes to the configuration ofcomputer system 110 may be stored on computer system 110. In oneembodiment, customer 10 is provided with a prompt to cause customer 10to select whether customer 10 wishes the changes made by customer 10 tobe saved. The prompt may occur automatically or in response to customer10 selecting an indicator associated with a save function. Customer 10may also be provided with an option to cancel any modifications torestore the configuration of computer system 110 to the original state.In other embodiments, changes made by customer 10 may be automaticallysaved.

[0026] After customer 10 finishes configuring the software and data inimage 119, customer 10 provides an indication to the computermanufacturer that image 119 is complete. If image 119 is not complete,the state of image 119 may be saved by the computer manufacturer for asubsequent access or accesses by customer 10.

[0027] In one embodiment, customer 10 is prompted to indicate whetherimage 119 is complete in response to selecting whether to savemodifications to image 119. In another embodiment, customer 10 selectsan indicator that causes the computer manufacturer to be notified thatimage 119 is complete. In other embodiments, customer 10 may provide anindication to the computer manufacturer in other ways such as by sendingan email or making a telephone call to the computer manufacturer.

[0028] As an alternative to providing customer 10 with access to anactual computer system substantially similar to the computer systemordered by customer 10, a computer manufacturer may provide customer 10with access to a computer system that is configured to simulate theoperation of the computer system ordered by customer 10. In FIG. 1,computer system 120 is configured to simulate the operation of thecomputer system ordered by customer 10.

[0029] As shown in a box 120 a, computer system 120 includes a softwareimage 124 and virtual machine 122. Image 124 includes the software anddata to be installed onto one or more computer systems ordered bycustomer 10. Virtual machine 122 is a computer program configured toexecute on computer system 120. Virtual machine 122 is configured tocause computer system 120 to simulate the operation the computer systemordered by customer 10. In response to receiving an order from customer10, the computer manufacturer may build the computer system ordered bycustomer 10 using virtual machine 122 to create a virtual computersystem. The computer manufacturer then provides customer 10 with accessto the virtual computer system.

[0030] To simulate the operation of the computer system ordered bycustomer 10, virtual machine 122 is provided with information associatedwith the software and hardware components of the ordered system. Virtualmachine 122 may detect this information from order information stored ina database or may be configured with this information by the computermanufacturer.

[0031] In particular, virtual machine 122 causes computer system 120 tosimulate the appearance and operation of the software and data stored inimage 124. Customer 10 accesses this simulation using computer system100 and communications software 102 and may make modifications to thesoftware and data stored in image 124 in a way similar to that discussedabove for making modifications to the software and data in image 119 oncomputer system 110.

[0032] As with computer system 110 discussed above, each modificationthat customer 10 makes to the configuration of image 124 computer system120 may be stored on computer system 120. In one embodiment, customer 10is provided with a prompt to cause customer 10 to select whethercustomer 10 wishes the modifications made by customer 10 to be saved.The prompt may occur automatically or in response to customer 10selecting an indicator associated with a save function. Customer 10 mayalso be provided with an option to cancel any modifications to restorethe configuration of image 124 to the original state. In otherembodiments, modifications made by customer 10 may be automaticallysaved.

[0033] After customer 10 finishes configuring the software and data inimage 124, customer 10 provides an indication to the computermanufacturer that image 124 is complete. If image 124 is not complete,the state of image 124 may be saved by the computer manufacturer for asubsequent access or accesses by customer 10.

[0034] In one embodiment, customer 10 is prompted to indicate whetherthe image is complete in response to selecting whether to savemodifications to the image. In another embodiment, customer 10 selectsan indicator that causes the computer manufacturer to be notified thatimage 119 is complete. In other embodiments, customer 10 may provide anindication to the computer manufacturer in other ways such as by sendingan email or making a telephone call to the computer manufacturer.

[0035]FIG. 2 is a first diagram illustrating an embodiment of a secondportion of a system for configuring a software image for installationinto a computer system. In FIG. 2, a computer system 200 is configuredto communicate with computer systems 110 and 120 from FIG. 1 asindicated by connection indicators 210 and 212, respectively. As shownby a box 200 a, computer system 200 includes a base image 202, a program204, and a delta file 206.

[0036] After customer 10 finishes modifying an image, computer system200 accesses that image and provides the image to a manufacturingprocess for installation onto one or more computer systems ordered bycustomer 10. Where customer 10 accessed and modified image 119 oncomputer system 110, computer system 200 accesses image 119 on computersystem 120 and provides image 119 to the manufacturing process.Similarly, where customer 10 accessed and modified image 124 on computersystem 120, computer system 200 accesses image 124 on computer system120 and provides image 124 to the manufacturing process.

[0037] Program 204 causes computer system 200 to access image 119 or 124and provide the image to the manufacturing process. In the embodimentshown in FIG. 2, program 204 causes the image to be compared with baseimage 202. Base image 202 corresponds to the original state of theimage. By comparing the image 119 or 124 to base image 202, program 204causes computer system 200 to detect the differences between thispreferred image of customer 10 and base image 202 and store thesedifferences in delta file 206. Accordingly, computer system 200 mayprovide the preferred image of customer 10 to the manufacturing processby providing delta file 206 and base image 202 instead of providing theentire image. Delta file 206 and base image 202 may be used in themanufacturing process to recreate the preferred image of customer 10. Inother embodiments, image 119 or image 124 may be provided to themanufacturing process in other ways.

[0038] In the manufacturing process, image 119 or image 124 or arecreation of one of these images may be installed onto one or morecomputer systems ordered by customer 10.

[0039]FIG. 3 is a flow chart illustrating an embodiment of a method forconfiguring a software image for installation into a computer system. Acustomer is provided with access to a software image associated with acomputer system as indicated in step 302. A determination is made as towhether changes to the image have been made as indicated in step 304. Ifno changes have been made, the method continues at step 308. If changeshave been made, then the changes are saved as indicated in step 306.

[0040] A determination is made as to whether the image is the finalversion of the image as indicated in step 308. If the image is not thefinal version, the image is stored for later access by the customer. Ifthe image is the final version, then the final image is provided to themanufacturing process as indicated in step 312. The final image isinstalled onto one or more computer systems as indicated in step 314.

[0041]FIGS. 4a through 4 d are diagrams illustrating an embodiment of asystem for receiving a software image for installation into a computersystem. In FIGS. 4a through 4 d, computer system 100 is configured tocommunicate with a server 400 using communications network 130. Network130 may be any suitable communications medium such as the internet, anintranet, a point-to-point connection, or a wireless connection.Customer 10 operates computer system 100 as indicated by arrow 12.

[0042] As shown in box 100 a in FIG. 4a, computer system 100 includescommunications software 102. Communications software 102 allows customer10 to communicate with server 400. Computer system 100 may be any typeof computer system that includes processing and storage capabilities.Examples of computer systems include desktop, laptop, server, portable,and handheld computer systems.

[0043] As shown in a box 400 a in FIG. 4a, server 400 includes a program402 and a virtual engineer program 404. Program 402 allows customer 10to provide a computer manufacturer with a software image forinstallation into one or more computer systems using virtual engineer404.

[0044] Customer 10 accesses program 402 using communications software102 and communications network 130. Program 402 provides customer 10with the ability to provide a software image to a computer manufacturerusing virtual engineer 404. To provide a computer manufacturer with asoftware image to be installed onto a computer system, customer 10configures software that may include an operating system, one or moreapplications, and data on computer system 100 to a desired state. Thisdesired state forms a software image 152 (shown in FIG. 4c) that will beprovided to the computer manufacturer.

[0045] After customer 10 performs this configuration, customer 10 logsonto server 400 using program 402. Program 402 may obtain customerinformation from customer 10 or may access previously stored customerinformation associated with customer 10. Program 402 may also obtainorder information from customer 10 or may access previously stored orderinformation associated with an order from customer 10 for one or morecomputer systems.

[0046] Program 402 provides customer 10 with the option to upload image152. Using this option, customer 10 may provide a request to a computermanufacturer to upload image 152 for installation into a computer systemordered by customer 10. In one particular embodiment, customer 10provides a request to upload image 152 by selecting an appropriateindicator on a website provided by the computer manufacturer using theinternet. In response to the option being selected by customer 10,program 402 causes virtual engineer 404 to be downloaded to computersystem 100 as shown in FIG. 4b. In other embodiments, virtual engineer404 may be executed from a computer system remotely located fromcomputer system 100.

[0047] In response to being downloaded onto computer system 100, virtualengineer 404 causes a boot disk 406 to be created as indicated by anarrow 408. Boot disk 406 may be a floppy disk, a CD-ROM, or other typeof storage medium. Virtual engineer 404 includes boot code (not shown)and a program 410. Virtual engineer 404 causes the boot code and program410 to be stored onto boot disk 406 as indicated by a box 406 a. Theboot code includes instructions configured to boot computer system 100independently of any boot code and/or operating system software storedon computer system 100. The boot code is configured to initiate program410. In one embodiment, the boot code includes DOS drivers. In otherembodiments, the boot code may include other type of drivers orprograms.

[0048] Subsequent to creating boot disk 406, virtual engineer 404 isremoved from computer system 100. In one embodiment, virtual engineer404 causes a shortcut or link to a URL (uniform resource locator) to bestored onto computer system 100. The shortcut may cause program 402 onserver 400 to be initiated. In an embodiment of computer system 100configured to operate using a Windows operating system such as Windows95, Windows 98, Windows NT, or Windows 2000, the shortcut may be storedas part of a startup folder, a registry run key or a registry run oncekey. In response to computer system rebooting using the boot code onboot disk 406, computer system 100 connects to server 400 according tothe shortcut and causes program 402 to be initiated. In this embodiment,program 402 causes virtual engineer 404 to be removed from computersystem 100.

[0049] Referring now to FIG. 4c, program 410 includes instructionsconfigured to cause image 152 to be uploaded to server 400. Image 152 isstored in computer system 100 on a storage device 150. Storage device150 may be a hard disk drive or other memory configured to storesoftware and/or data. Program 410 causes a new partition 154 to becreated on storage device 150. Partition 154 includes memory space onstorage device 150 that is not otherwise in use by computer system 100,i.e. free space. Program 410 then causes image 152 to be copied into thememory space included within partition 154 as indicated in FIG. 4c. Inone embodiment, program 410 includes a version of PowerQuest PartitionMagic, a version of PowerQuest Drive Image, and one or more scripts. Inthis embodiment, PowerQuest Partition Magic may be used to createpartition 154 and PowerQuest Drive Image may be used to copy image 152into partition 154. In other embodiments, other programs may be includedin program 410 to perform the tasks of partitioning and copying.

[0050] Referring now to FIG. 4d, computer system 100 is rebooted back tothe operating system stored on computer system 100 after image 152 hasbeen copied into partition 154. To prevent computer system 100 frombooting using boot disk 406, the master boot record of the device usedto boot computer system 100 with boot disk 406 may be disabled orcustomer 10 may remove boot disk 406 from the device. Computer system100 then connects to server 400 according to a shortcut stored byvirtual engineer 404 and causes program 402 to be initiated. Program 402locates image 152 in partition 154 and causes image 152 to be uploadedonto server 400. Program 402 causes image 152 to be stored onto server400 along with an identifier (ID) 412. ID 412 is an address thatassociates image 152 with customer 10 or an order associated withcustomer 10 and indicates where image 152 is located on server 400. ID412 may be stored as part of the order information received fromcustomer 10.

[0051] After image 152 is received by the computer manufacturer, image152 is installed onto one or more computer systems ordered by customer10. The computer systems may be built by the computer manufactureraccording to an order from customer 10 and may include one or morecomponents specified in the order. The computer systems may bebuild-to-order computer systems.

[0052]FIG. 5 is a flow chart illustrating an embodiment of a method forreceiving a software image for installation into a computer system. Acustomer installs and configures software and data on a system to adesired state as indicated in step 502. The software may include anoperating system, one or more applications, and data. The customer loadsvirtual engineer software onto the system as indicated in step 504. Thevirtual engineer software may be downloaded from a computer system of acomputer manufacturer in response to providing a request to the computersystem.

[0053] The virtual engineer causes a boot disk to be created asindicated in step 506. The system reboots using the boot disk asindicated in step 508. The virtual engineer is removed from the systemas indicated in step 510. A program from the boot disk causes apartition to be created on a storage device of the system as indicatedin step 512. The program causes an image of the system to be copied intothe partition as indicated in step 514. The system reboots back to theoriginal operating system as indicated in step 516. The system transmitsthe image to a manufacturer system as indicated in step 518. Themanufacturer installs the image onto one or more computer systems asindicated in step 520.

[0054]FIG. 6 is diagram illustrating an embodiment of a system forproviding a copy of a software image. In FIG. 6, computer system 100 isconfigured to communicate with a server 600 using communications network130. Network 130 may be any suitable communications medium such as theinternet, an intranet, a point-to-point connection, or a wirelessconnection. Customer 10 operates computer system 100 as indicated byarrow 12.

[0055] As shown in box 100 a, computer system 100 includescommunications software 102. Communications software 102 allows customer10 to communicate with server 600. Computer system 100 may be any typeof computer system that includes processing and storage capabilities.Examples of computer systems include desktop, laptop, server, portable,and handheld computer systems.

[0056] As shown in a box 600 a, server 600 includes a program 602.Program 602 allows customer 10 to retrieve a software image 606 fromserver 600 using computer system 100 and communications software 102.

[0057] Image 606 includes a copy of the software and data stored on oneor more computer systems owned or used by customer 10. Image 606 mayhave been the image installed by a manufacturer onto one or morecomputer systems previously ordered by customer 10 and is stored onserver 600 with identifier 604. At some point, one or more of thecomputer systems may experience either a hardware or software failure.The failure may render the computer system inoperable such that a newcopy of image 606 is needed for the failing system.

[0058] Program 602 allows customer 10 to identify and retrieve image 606using a variety of delivery methods. Program 602 allows customer 10 tolog in to server 600 using communications software 102. Program 602 maydo so using a secure transmission method whereby only authorizedindividuals are allowed to access image 606. After customer 10 logs in,program 602 provides customer 10 with the ability to select an image fordelivery as well as the method for the delivery. The choices of imagesfor customer 10 to select correspond to one or more images previouslyinstalled onto one or more of customer 10's computer systems by amanufacturer. These images may have been previously assigned names orother customer-defined terminology to allow customer 10 to rapidlyidentify the image customer 10 needs for the failing computer system.

[0059] In the embodiment shown in FIG. 6, customer 10 selects image 606for retrieval. After customer 10 makes this selection, program 602causes customer 10 to select the method for retrieving image 606. Asshown in FIG. 6, image 606 may be downloaded from server 600 ontocomputer system 100 using communications network 130, copied from server600 or another server to a CD-ROM 610 and provided to customer 10 asindicated by an arrow 612 and an arrow 614, copied from server 600 oranother server onto a media device 620 and provided to customer 10 asindicated by an arrow 622 and arrow 614.

[0060] The method selected by customer 10 may depend on the type offailure on the failing computer system. For example, if a media devicesuch as a hard disk drive causes the failure in the computer system,then customer 10 may select to have image 606 copied onto the same orsimilar type of media device and shipped to customer 10 as indicated byarrows 622 and 614. Alternatively, customer 10 may select to have image606 downloaded onto computer system 100 to allow customer 10 to storeimage 606 onto a replacement media device (not shown in FIG. 6).Customer 10 may then install the replacement media device into thefailed computer system.

[0061] As another example, the failure may be such that it is preferablefor customer 10 to recover the failing system using an image stored onCD-ROM. Accordingly, customer 10 may select to have image 606 copiedonto CD-ROM 610 by the manufacturer or at another remote location andshipped to customer 10 as indicated by arrows 612 and 614.Alternatively, customer 10 may select to have image 606 downloaded ontocomputer system 100 and burned onto a CD-ROM (not shown in FIG. 6).

[0062] Where customer 10 selects the use of a CD-ROM, one or more ofseveral security measures may be employed to prevent customer 10 frominstalling image 606 on unauthorized computer systems. First, program602 may require customer 10 to contractually agree not to install image606 on unauthorized computer systems in exchange for providing image606. Next, program 602 may cause a service tag to be burned onto theCD-ROM to allow image 606 to be copied only onto a particular system.Further, a single-use license may be created on image 606 to allow it toonly be used once with the sole intention of correcting the systemfailure. Still further, a table of contents file on the CD-ROM may bedeleted. After image 606 is restored onto the failed computer system,the CD-ROM session could be re-opened and then closed thus inhibitingthe CD-ROM from further use.

[0063] As a further example, customer 10 may experience softwarecorruption on computer system 100 that does not prohibit the use of thecomputer system 100. In this case, customer 10 may opt to connect toserver 600 using communications software 102 and may use program 602 torestore the image on computer system 100.

[0064]FIG. 7 is a diagram illustrating an embodiment of a system forproviding data for installation into a computer system. In FIG. 7,computer system 100 is configured to communicate with a server 700 usingcommunications network 130. Customer 10 operates computer system 100 asindicated by arrow 12.

[0065] As shown in box 100 a, computer system 100 includescommunications software 102 and data 160. Communications software 102allows customer 10 to communicate with server 700. As shown in a box 700a, server 700 includes an order program 702. Order program 702 allowscustomer 10 to place an order for a computer system using computersystem 100 and communications software 102. The computer system orderedby customer 10 may be a build-to-order computer system where customer 10specifies one or more hardware or software components to be installed inthe computer system. Accordingly, order program 702 may allow customer10 to specify hardware and software components of one or morebuild-to-order computer systems. The software and hardware componentsmay be the same or different on the build-to-order computer systemsincluded in an order.

[0066] Customer 10 may wish to have data 160 installed on one or more ofthe computer systems in an order. Data 160 may be any type of files orother data that customer 10 wishes to have installed. In particular,data 160 may include ASCII text, one or more Lotus Notes IDs, one ormore Outlook mailboxes, binary files, or other secret or proprietarydocuments. To allow data 160 to be installed on a computer system orsystems of an order, order program 702 allows customer 10 to identifydata 160 and causes data 160 to be received by and stored on server 700.As shown in box 700 a, order program 702 causes data 160 to be storedonto server 700 along with an identifier 704. Identifier 704 specifiesthe location of data 160 on server 700 and may be stored as part of anorder generated and stored by order program 702.

[0067] To store data 160 on server 700, a tool such as PkZip, WinZip, orRPM may be used to package data 160 and include a path structure toensure that data 160 is properly installed onto one or more computersystems during the manufacturing process. Order program 702 may alsoprompt customer 10 to enter the desired location for data 160 on theordered computer systems.

[0068] The order placed by customer 10 may be submitted to server 700using SSL/PCT, IP security, or other secure transmission type. Data 160may be submitted to server 700 using a secure transmission type such asPPTP. Server 700 may use MMPE (RSA RC4), DES, or any othergovernment-approved encryption method.

[0069] During the manufacturing process, the existence of data 160 willbe detected from the order from customer 10. Data 160 will be locatedusing identifier 704 and stored onto the one or more computer systemsspecified by the order. Data 160 may be unpackaged directly from server700 or another server to the ordered system or systems, copied fromserver 700 or another server to the ordered system or systems, or movedfrom server 700 or another server to the ordered system or systems andunpackaged if required.

[0070] As can be seen, the principal advantages of these embodiments arethat they allow a computer manufacturer to install a software image ontoa computer system. A customer may configure software and data to adesired state to create a desired software image. The computermanufacturer obtains the software image from the customer and installsthe image onto a computer system ordered by the customer.

[0071] Although illustrative embodiments have been shown and described,a wide range of modification, change and substitution is contemplated inthe foregoing disclosure and in some instances, some features of theembodiments may be employed without a corresponding use of otherfeatures. Accordingly, it is appropriate that the appended claims beconstrued broadly and in a manner consistent with the scope of theembodiments disclosed herein.

What is claimed is:
 1. A method of manufacturing a first computer system comprising: receiving an order and a software image via a communications network; building the first computer system according to the order; and installing the software image on the first computer system.
 2. The method of claim 1, further comprising: receiving the order and the software image via the internet.
 3. The method of claim 1, further comprising: prior to receiving the software image via the communications network: providing a customer associated with the order with a program configured to cause the software image to be provided to a computer manufacturer using the communications network.
 4. The method of claim 3, further comprising: providing the customer with the program in response to a request from the customer.
 5. The method of claim 3, further comprising: providing the customer with the program in response to the customer logging in to a second computer system associated with the computer manufacturer.
 6. The method of claim 3, further comprising: providing the customer with the program, the program configured to cause a second computer system associated with the customer to: create a partition on a storage device of the second computer system, wherein the storage device includes the software image; copy the software image into the partition; and provide the software image in the partition to the computer manufacturer.
 7. The method of claim 1, further comprising: in response to receiving the order and the software image, storing the order and the software image on a second computer system associated with a computer manufacturer.
 8. The method of claim 7, further comprising: storing an address associated with the software image as a part of the order.
 9. The method of claim 8, further comprising: installing the software image on the first computer system in response to accessing the software image from a location indicated by the address.
 10. The method of claim 1, further comprising: installing the software image on the first computer system prior to providing the first computer system to a customer.
 11. A system comprising: a first computer system for: receiving a request to upload a software image from a second computer system associated with a customer; providing a program to the second computer system in response to receiving the request, the program configured to cause the software image to be uploaded to the second computer system; receiving the software image from the second computer system in response to providing the program to the second computer system; and providing the software image for installation on a third computer system ordered by the customer.
 12. The system of claim 11, wherein the first computer system is for: receiving an order and the software image via a communications network.
 13. The system of claim 12, wherein the first computer system is for: receiving the order and the software image via the internet.
 14. The system of claim 13, wherein the request includes a selection of an indicator on a website.
 15. The system of claim 11, wherein the program is configured to cause the second computer system to: create a partition on a storage device of the second computer system, wherein the storage device includes the software image; copy the software image into the partition; and provide the software image in the partition to the computer manufacturer.
 16. The system of claim 11, wherein the first computer system is for: storing the software image.
 17. The system of claim 16, wherein the first computer system is for: storing an address associated with the software image as a part of an order associated with the third computer system.
 18. A method performed by a first computer system comprising: creating a partition on a storage device, wherein the storage device includes a software image; copying the software image into the partition; and providing the software image in the partition to a second computer system.
 19. The method of claim 18, further comprising: booting the first computer system using a boot disk; creating the partition in response to booting the first computer system using the boot disk.
 20. The method of claim 19, further comprising: receiving a first program onto the first computer system; and in response to receiving the first program onto the first computer system, storing first boot code and a second program onto the boot disk.
 21. The method of claim 20, further comprising: in response to booting the first computer system using the boot disk, removing the first program from the first computer system.
 22. The method of claim 20, further comprising: creating the partition in response to first instructions in the second program; and copying the software image into the partition in response to second instructions in the second program.
 23. The method of claim 22, further comprising: storing a link onto the first computer system in response to third instructions in the second program; and storing the image onto the second computer system at a location associated with the link in response to fourth instructions in the second program.
 24. The method of claim 23, further comprising: storing the image onto the second computer system at the location associated with the link in response to the first computer system being rebooted using second boot code stored on the first computer system. 